package tptecnicas.printers.parser;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import tptecnicas.logging.MessageInfo;

/**
 * Clase encargada de analizar y resolver el codigo 
 * asociado al numero de linea del archivo donde se logueo, en el formato de log.
 */
public class LineNumberReplacer implements FormatReplacer {

	private Pattern patternToMatch;
	private Matcher matcher;
	
	/*Constructor
	@param token: format identifier to replace
	*/
	public LineNumberReplacer(){
		patternToMatch = Pattern.compile("%L");
	}

	@Override
	public String toString() {
		return "line";
	}
	
	@Override
	public String replace(MessageInfo info, String formatLine) {
		matcher = patternToMatch.matcher(formatLine);
		return matcher.replaceAll(Integer.toString(info.getLineNumber()));
	}

	@Override
	public String getValue(MessageInfo info) {
		return Integer.toString(info.getLineNumber());
	}
}
